using System;
using System.Collections;

namespace Microsoft.SqlServer.Tools.PublishWizard.CommandLine
{
	public class PublishCommandLineArguments : CommonCommandLineArguments
	{
		private string _providerName;

		private string _webService;

		private string _webServicePassword;

		private string _webServiceUsername;

		private string _remoteServerName;

		private string _remoteDatabaseName;

		private string _remoteDatabaseUsername;

		private string _remoteDatabasePassword;

		private bool _noTransaction;

		private ArrayList _commands = new ArrayList();

		[Argument(ArgumentTypes.AtMostOnce, HelpTopic = "WebServiceOption", ArgumentHelpText = "HosterNameSyntax", LongName = "R", HelpText = "HosterNameHelpText")]
		public string ProviderName
		{
			get
			{
				return this._providerName;
			}
			set
			{
				this._providerName = value;
			}
		}

		[Argument(ArgumentTypes.AtMostOnce, HelpTopic = "WebServiceOption", ArgumentHelpText = "WebServiceAddressSyntax", LongName = "RW", HelpText = "WebServiceHelpText")]
		public string WebService
		{
			get
			{
				return this._webService;
			}
			set
			{
				this._webService = value;
			}
		}

		[Argument(ArgumentTypes.AtMostOnce, HelpTopic = "WebServiceOption", ArgumentHelpText = "WebServicePasswordSyntax", LongName = "RWP", HelpText = "WebServicePasswordHelpText")]
		public string WebServicePassword
		{
			get
			{
				return this._webServicePassword;
			}
			set
			{
				this._webServicePassword = value;
			}
		}

		[Argument(ArgumentTypes.AtMostOnce, HelpTopic = "WebServiceOption", ArgumentHelpText = "WebServiceUsernameSyntax", LongName = "RWU", HelpText = "WebServiceUsernameHelpText")]
		public string WebServiceUserName
		{
			get
			{
				return this._webServiceUsername;
			}
			set
			{
				this._webServiceUsername = value;
			}
		}

		[Argument(ArgumentTypes.AtMostOnce, HelpTopic = "WebServiceOption", ArgumentHelpText = "RemoteServerSyntax", LongName = "RS", HelpText = "RemoteServerNameHelpText")]
		public string RemoteServerName
		{
			get
			{
				return this._remoteServerName;
			}
			set
			{
				this._remoteServerName = value;
			}
		}

		[Argument(ArgumentTypes.AtMostOnce, HelpTopic = "WebServiceOption", ArgumentHelpText = "RemoteDatabaseSyntax", LongName = "RD", HelpText = "RemoteDatabaseNameHelpText")]
		public string RemoteDatabaseName
		{
			get
			{
				return this._remoteDatabaseName;
			}
			set
			{
				this._remoteDatabaseName = value;
			}
		}

		[Argument(ArgumentTypes.AtMostOnce, HelpTopic = "WebServiceOption", ArgumentHelpText = "RemoteUsernameSyntax", LongName = "RU", HelpText = "RemoteDatabaseUsernameHelpText")]
		public string RemoteDatabaseUserName
		{
			get
			{
				return this._remoteDatabaseUsername;
			}
			set
			{
				this._remoteDatabaseUsername = value;
			}
		}

		[Argument(ArgumentTypes.AtMostOnce, HelpTopic = "WebServiceOption", ArgumentHelpText = "RemotePasswordSyntax", LongName = "RP", HelpText = "RemoteDatabasePasswordHelpText")]
		public string RemoteDatabasePassword
		{
			get
			{
				return this._remoteDatabasePassword;
			}
			set
			{
				this._remoteDatabasePassword = value;
			}
		}

		[Argument(ArgumentTypes.AtMostOnce, HelpTopic = "WebServiceOption", LongName = "notransaction", HelpText = "NoTransactionHelpText", DefaultValue = false)]
		public bool NoTransaction
		{
			get
			{
				return this._noTransaction;
			}
			set
			{
				this._noTransaction = value;
			}
		}

		[Argument(ArgumentTypes.Multiple, HelpText = "", IsDefaultArgument = true, ElementType = typeof(string), MaxNumberOfArguments = 1)]
		public ArrayList Commands
		{
			get
			{
				return this._commands;
			}
		}
	}
}
